package central;
import gnu.io.SerialPortEvent;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

import Conexion.ComunicacionArduino;
import GUI.Ventana;
import control_monitor.Monitor;

public class pieza_B implements Runnable{

	private Monitor monitor; 
	ComunicacionArduino robot2;
	Ventana gui;
	
	public pieza_B(Monitor monit,ComunicacionArduino _robot2, Ventana _gui){
		monitor=monit;
	    robot2 = _robot2;
		gui = _gui;	
	}
	
	private void esperar(ComunicacionArduino robot)
	{
		boolean respuesta = false;
		while(!respuesta)
		{
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			SerialPortEvent s = new SerialPortEvent(robot.puerto(), 1, false, true); 
			
			if(robot.serialEvent2(s).equals("fin"))
			{
				respuesta = true;
			}		
		}
		
	}

	public void run(){
		
			//Llega pieza B.
			monitor.ejecutar_transicioninicial(2);	
			gui.setnumI(2, 1);
			
		
			
		    monitor.ejecutar_transicioninicial(14);	  
		    //Mensaje a arduino que robot 2 vaya a INPUT 2
			robot2.sendMessage("I");
			//R2 va a I2
		    gui.SetRobot(2,4);
		    gui.setnumI(2, -1);
		    esperar(robot2);
		    
			
		    
			monitor.ejecutar_transicion(15);
			//Mensaje robot 2 que vaya con pieza a M2
			robot2.sendMessage("2");
			//R2 deja en M2
			gui.SetRobot(2, 5);
			gui.setMaquina(2, 1, 2);
			esperar(robot2);
			
			
			
			
			monitor.ejecutar_transicion(16);
			//ARDUINO MSJ R2 q vaya a M2 a sacar pieza
			robot2.sendMessage("2");
			//R2 toma de M2
			gui.SetRobot(2, 5);
			gui.setMaquina(2, -1, 2);
			esperar(robot2);
			

					
		
			 
			//ARDUINO R2 que vaya a O2.
			robot2.sendMessage("O");
			//R2 deja en O
			gui.SetRobot(2, 0);
			gui.setnumO(2, 1);
			esperar(robot2);			
			monitor.ejecutar_transicion(17);	
			
			

			System.out.println("ya termino el camino B");
	}
}
